package cn.iocoder.yudao.framework.excel.core.strategy;

import cn.iocoder.yudao.framework.common.core.KeyValue;

import java.util.List;

/**
 * 定义租户字典策略的接口。
 * 该接口用于处理从缓存中获取字典数据的操作，包括获取标签、标签列表、值和对应的转换操作
 *
 * @Author LiZhiMin
 * @Date 2024/9/4 9:29
 */

public interface DictTenantStrategy {

    /**
     * 从缓存中获取字典标签，根据字典类型和字典值。
     *
     * @param dictType 字典类型
     * @param value    字典值
     * @return 对应的字典标签
     */
    String getDictDataLabel(String dictType, String value);

    /**
     * 从缓存中获取字典标签列表，根据字典类型。
     *
     * @param dictType 字典类型
     * @return 对应的字典标签列表
     */
    List<String> getDictDataLabelList(String dictType);

    /**
     * 从缓存中获取字典值，根据字典类型和字典标签。
     *
     * @param dictType 字典类型
     * @param label    字典标签
     * @return 对应的字典值
     */
    String parseDictDataValue(String dictType, String label);

    /**
     * 从缓存中获取字典标签，根据字典类型和Integer类型的值。
     *
     * @param dictType 字典类型
     * @param value    Integer类型的字典值
     * @return 对应的字典标签
     */
    String getDictDataLabel(String dictType, Integer value);

    /**
     * 从缓存中获取字典值列表，根据字典类型。
     *
     * @param dictType 字典类型
     * @return 对应的字典值列表
     */
    List<String> getDictDataValueList(String dictType);
}
